/**
 * 
 */
package com.yidu.drug.service.impl;

import java.sql.Timestamp;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.yidu.drug.common.Page;
import com.yidu.drug.common.Tools;
import com.yidu.drug.dao.DrugTypeModelMapper;
import com.yidu.drug.model.DrugTypeModel;
import com.yidu.drug.service.DrugTypeService;

/**
 * 药品类型的Service实现类
 * @author 王志伟
 * @date 2018年8月13日 下午7:24:12
 * @version 1.0
 */
@Service
public class DrugTypeServiceImpl implements DrugTypeService{

	//药品类型的DAO
	@Resource
	private DrugTypeModelMapper drugTypeDao;
	
	String id="";
	/**
	 * 根据ID删除
	 */
	@Override
	public int deleteByPrimaryKey(String dtId) {
		// TODO Auto-generated method stub
		return drugTypeDao.deleteByPrimaryKey(dtId);
	}

	/**
	 * 增加所有信息
	 */
	@Override
	public int insert(DrugTypeModel record) {
		// TODO Auto-generated method stub
		return drugTypeDao.insert(record);
	}
	
	/**
	 * 增加部分信息
	 */
	@Override
	public int insertSelective(DrugTypeModel record) {
		id="";
		System.out.println("进入材料类型增加的方法，PID为："+record.getPid());
		if(record.getPid()==""){
			record.setPid(null);
		}
		//生成ID替换横线获取前十位
		String id=UUID.randomUUID().toString().replaceAll("-", "").substring(0,10);
		record.setDtId(id);
		record.setIsva("有效");
		//获取当前日期时间
		Timestamp ss = new Timestamp(new Date().getTime());
		record.setCztime(ss);
		return drugTypeDao.insertSelective(record);
	}

	/**
	 * 根据ID查询
	 */
	@Override
	public DrugTypeModel selectByPrimaryKey(String dtId) {
		// TODO Auto-generated method stub
		DrugTypeModel mat=drugTypeDao.selectByPrimaryKey(dtId);
		id=mat.getDtId();
		return mat;
	}

	/**
	 * 根据ID修改部分信息
	 */
	@Override
	public int updateByPrimaryKeySelective(DrugTypeModel record) {
		//获取当前时间
		Timestamp ss = new Timestamp(new Date().getTime());
		record.setCztime(ss);
		if(Tools.isEmpty(record.getPid())){
			record.setPid(null);
		}
		// TODO Auto-generated method stub
		return drugTypeDao.updateByPrimaryKeySelective(record);
	}

	/**
	 * 根据ID修改所有信息
	 */
	@Override
	public int updateByPrimaryKey(DrugTypeModel record) {
		// TODO Auto-generated method stub
		return drugTypeDao.updateByPrimaryKey(record);
	}

	/**
	 * 查询分页
	 */
	@Override
	public Map<String,Object> findAll(String limit,String page,String dtName) {
		
		DrugTypeModel drugTypeModel=new DrugTypeModel();
		Page pa=new Page();
		pa.setPage(Integer.valueOf(page));
		pa.setRows(Integer.valueOf(limit));
		drugTypeModel.setPage(pa);
		drugTypeModel.setDtName(dtName);
		//查询所有信息或者按条件查询
		List<DrugTypeModel> list = drugTypeDao.findAll(drugTypeModel);
		for (DrugTypeModel DrugTypeModel2 : list) {
	        
	        String pids=DrugTypeModel2.getPid();
	        if(pids!=null){
	        	DrugTypeModel dru=drugTypeDao.selectByPrimaryKey(pids);
	        	DrugTypeModel2.setPid(dru.getDtName());
	        }else{
	        	DrugTypeModel2.setPid("根级");
	        }
		}
		//查询出的信息的总行数
		Long count = drugTypeDao.findRows(drugTypeModel);
		System.out.println("总行数"+count);
		//加入MAP集合
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("code",0);
		map.put("msg","");
		map.put("count",count);
		map.put("data", list);
		return map;
	}

	/**
	 * 查询总行数
	 */
	@Override
	public long findRows(DrugTypeModel record) {
		// TODO Auto-generated method stub
		return drugTypeDao.findRows(record);
	}

	/**
	 * 查询所有
	 */
	@Override
	public List<DrugTypeModel> findAllType() {
		// TODO Auto-generated method stub
		return drugTypeDao.findAllType();
	}

	/**
	 * 根据Pid查询上级类型
	 * @return
	 */
	@Override
	public List<DrugTypeModel> findByPid() {
		List<DrugTypeModel> list=drugTypeDao.findByPid();
		for(int i=0;i<list.size();i++){
			if(!Tools.isEmpty(id)){
				if(list.get(i).getDtId().equals(id)){
					list.remove(i);
				}
			}
		}
		return list;
	}

}
